package dominio;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import persistenca.Agente;

public class GestorViaje {
	Agente agente ;
	/**
	 * 
	 * @param t
	 * @throws Exception 
	 */
	public GestorViaje() throws Exception{
		agente=Agente.getAgente();
	}
	public int insert(Viaje v) throws SQLException, Exception {
		// TODO - implement GestorViaje.insert
		return agente.insert("INSERT INTO VIAJES VALUES ("+v.getId()+",'"+v.getOrigen()+"','"+v.getDestino()+"','"+v.getHora_salida()+"','"+v.getHora_llegada()+"','"+v.getTren().getMatricula()+"','"+v.getFecha()+"');");
	}

	/**
	 * 
	 * @param v
	 * @return 
	 * @throws Exception 
	 * @throws SQLException 
	 */
	public int update(Viaje v) throws SQLException, Exception {
		// TODO - implement GestorViaje.update
		return agente.update("UPDATE VIAJES SET ");
	}

	/**
	 * 
	 * @param v
	 * @throws Exception 
	 * @throws SQLException 
	 */
	public int delete(Viaje v) throws SQLException, Exception {
		// TODO - implement GestorViaje.delete
		return agente.delete("DELETE FROM VIAJES WHERE Id="+v.getId()+";");
	}

	/**
	 * 
	 * @param v
	 * @throws Exception 
	 * @throws SQLException 
	 */
	public void read(Viaje v) throws SQLException, Exception {
		// TODO - implement GestorViaje.read
		ResultSet r=agente.select("SELECT * FROM VIAJES WHERE Id="+v.getId()+";");
		if(r.next()){
			v.setOrigen(r.getString("Origen"));
			v.setDestino(r.getString("Destino"));
			v.setHora_salida(r.getString("Hora salida"));
			v.setHora_llegada(r.getString("Hora llegada"));
			v.setTren(new Tren(r.getString("Tren"),null));
			v.setFecha(r.getString("Fecha"));
		}
		
	}

	public List<Viaje> readAll() throws SQLException, Exception {
		// TODO - implement GestorViaje.readAll
		List<Viaje> v=new ArrayList<Viaje>();
		ResultSet r=agente.select("SELECT * FROM VIAJES;");
		while(r.next()){
			v.add(new Viaje(r.getInt("Id"),r.getString("Origen"),r.getString("Destino"),r.getString("Hora salida"),r.getString("Hora llegada"),new Tren(r.getString("Tren"),null),r.getString("Fecha")));
		}
		return v;
	}

}